home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / news / inn1.000 / inn1.4sec-linux-src.tar / inn / samples / send-ihave < prev    next >
Text File  |  1993-03-18  |  1KB  |  63 lines

  1. #! /bin/sh
  2. ##  $Revision: 1.6 $
  3. ##  SH script to send IHAVE batches out.
  4.  
  5. ##  =()<. @<_PATH_SHELLVARS>@>()=
  6. . /news/lib/innshellvars
  7.  
  8. PROGNAME=`basename $0`
  9. LOCK=${LOCKS}/LOCK.${PROGNAME}
  10. LOG=${MOST_LOGS}/${PROGNAME}.log
  11.  
  12. ## How many Message-ID's per message.
  13. PERMESSAGE=1000
  14.  
  15. ##  Start logging.
  16. test ! -f ${LOG} && touch ${LOG}
  17. chmod 0660 ${LOG}
  18. exec >>${LOG} 2>&1
  19. echo "${PROGNAME}: [$$] begin `date`"
  20. cd ${BATCH}
  21.  
  22. ##  Anyone else there?
  23. trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15
  24. shlock -p $$ -f ${LOCK} || {
  25.     echo "${PROGNAME}: [$$] locked by [`cat ${LOCK}`]"
  26.     exit 0
  27. }
  28.  
  29. ##  Do the work.
  30. for SITE in $* ; do
  31.  
  32.     ##  See if any data is ready for host.
  33.     BATCHFILE=${SITE}.ihave.batch
  34.     if [ -f ${SITE}.iwork ] ; then
  35.     cat ${SITE}.iwork >>${BATCHFILE}
  36.     rm -f ${SITE}.iwork
  37.     fi
  38.     mv ${SITE}.ihave ${SITE}.iwork
  39.     ctlinnd -s -t30 flush ${SITE}.ihave || continue
  40.     cat ${SITE}.iwork >>${BATCHFILE}
  41.     rm -f ${SITE}.iwork
  42.     echo "${PROGNAME}: [$$] begin ${SITE}"
  43.  
  44.     ##  Write out the batchfile as a control message, in clumps.
  45.     export SITE PERMESSAGE BATCHFILE
  46.     while test -s ${BATCHFILE} ; do
  47.     (
  48.         echo Newsgroups: to.${SITE}
  49.         echo Control: ihave `innconfval pathhost`
  50.         echo ''
  51.         ${SED} -e ${PERMESSAGE}q <${BATCHFILE}
  52.     ) | ${INEWS} -h
  53.     ${SED} -e "1,${PERMESSAGE}d" <${BATCHFILE} >${BATCHFILE}.tmp
  54.     mv ${BATCHFILE}.tmp ${BATCHFILE}
  55.     done
  56.     echo "${PROGNAME}: [$$] end ${SITE}"
  57. done
  58.  
  59. ##  Remove the lock file.
  60. rm -f ${LOCK}
  61.  
  62. exit
  63.